// 导入axios
import axios from 'axios'
import { Toast } from 'vant'

// 在里面设置基地址
// axios.defaults.baseURL = '基地址'

// 这句话：给你创建了一个新的axios的对象，并设置新对象的基地址
// 原因：可能以后一个项目里有多个基地址，所以最好有不同的axios对象专门负责不同的基地址
const request = axios.create({
  baseURL: 'http://interview-api-t.itheima.net/'
})

import store from '@/store'

// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    if (store.state.token) {
      // 给config加请求头，携带token
      config.headers.Authorization = `Bearer ${store.state.token}`
    }

    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
request.interceptors.response.use(
  function (response) {
    // 正常响应调用的函数：在这里一般做数据剥离
    // 数据剥离
    return response.data
  },
  function (error) {
    // 响应出错调用的函数：在这里可以做一些补救或者统一处理错误
    // 对响应错误做点什么

    Toast.fail(error.response.data.message)
    return Promise.reject(error)
  }
)

// 暴露出请求对象
export default request
